Asynchronous transfer mode (ATM) networks are well known in the art. FIG. 1 shows an ATM network 100 including ATM switches 102 through 110. End devices (e.g., personal computers or telephones) 120 through 128 are coupled to ATM network 100 via respective routers 112 through 116. ATM network 100 facilitates data communication between two or more of the end devices 120 through 128. For purposes of illustration, operational aspects of network 100 will be described with reference to data communication between end devices 120 and 122.
ATM switch 102, ATM switch 104 and the link therebetween are sub-components of a data communication path between end devices 120 and 122. Data communication paths facilitate an exchange of data packets between end devices. The exchange of data packets between two end devices via the data path is often referred to as a call. For each call routed through an ATM switch, the ATM switch creates and maintains a switched virtual circuit (SVC) for processing data packets. For each SVC, switches allocate internal resources including a virtual path identifier/virtual circuit identifier (VPI/VCI) and a portion of switch's data processing bandwidth. A switch may simultaneously support many different calls via separately allocated SVCs.
Each SVC, or allocation of switch resources, is mapped to a particular call via a call reference. Each call reference uniquely identifies a corresponding call. Once a call has terminated, the switch resources allocated to the terminated call should be released for latter use in a subsequent call to be established.
As the size of ATM networks increase, problems and limitations associated with connection oriented transport mechanisms come to surface. One of these problems relates to the mechanism for releasing SVCs. Often, when a call through a switch is to be terminated, the switch releases its SVC corresponding to the call, and generates a release message instructing the neighboring switches to release their SVCs corresponding to the call to be terminated. Releasing the SVCs frees resources for use in other calls. Thereafter, the neighboring switches may generate and transmit a release message to their neighboring switches instructing them to release their SVCs allocated to the terminated call. This process continues until all SVCs allocated to the terminated call have been released.
Releasing SVCs of a call works well when individual calls are terminated. However, this scheme of releasing SVCs creates problems when there is a sudden need to release a large number of SVCs. For example, suppose the link between ATM switch 104 and router 114 is supporting several calls and subsequently fails for any one of a variety of reasons. ATM switch 104 must individually release all SVCs that correspond to calls on the failed link. Additionally, ATM switch 104 must generate and transmit separate release messages to neighboring switches instructing them to release their SVCs corresponding to calls supported on the failed link. If the number of calls supported by the failed link is large, then switch 104 will generate and transmit a corresponding large number of release messages. The generation and transmission of these release messages requires substantial consumption of the switches' resources including processor bandwidth and memory allocation. Moreover, transmission of the release messages to neighboring ATM switches may flood the network and create corresponding communication problems.